let Hook = require('./Hook');
let HookCodeFactory = require('./HookCodeFactory');
class AsyncSeriesHookCodeFactory extends HookCodeFactory{
    //每个钩子代码工厂内容都不一样
    content({onDone}){
        return this.callTapsSeries({onDone});//同步钩子
    }
}
let factory = new AsyncSeriesHookCodeFactory();
class AsyncSeriesHook extends Hook{
    compile(options){
        factory.setup(this,options);
        return factory.create(options);//返回就是我们懒编译的call方法了
    }
}
module.exports = AsyncSeriesHook;
/**
 * 不同的钩子到底最核心 的差异实现在哪里?????? AsyncSeriesHookCodeFactory.content
 * sync 
 * async 
 * promise
 */